package com.alfred.springboot.elasticjob.lite.core.autoconfigure;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.concurrent.TimeUnit;

@Getter
@Setter
@ConfigurationProperties(prefix = "elasticjob.zk")
public class ZookeeperProperties {

    // 连接Zookeeper服务器的列表 包括IP地址和端口号.多个地址用逗号分隔.如: host1:2181,host2:2181
    private String servers;

    // elasticjob在zk注册节点的命名空间
    private String namespace;

    // 基础休眠时间
    private int baseSleepTimeMilliseconds = 1000;

    // 最大休眠时间
    private int maxSleepTimeMilliseconds = 3000;

    // 重试次数 默认3次
    private int maxRetries = 3;

    // session超时时间
    private int sessionTimeoutMilliseconds = 60000;

    // 连接超时时间
    private int connectionTimeoutMilliseconds = 15000;

    // 连接Zookeeper的权限令牌 缺省为不需要权限验证
    private String digest;

    //~~~ 增加属性 BEGIN ~~~
    // 锁定周期单位
    private TimeUnit lockPeriodTimeUnit;

    // 锁定周期时长
    private long lockPeriodTime;
    //~~~ 增加属性 END ~~~

}